Techniques for Validating Multimedia Forms

ABSTRACT

Techniques for creating and processing electronic forms that include at least one field that is configured to accept multimedia information as input. Techniques are provided for creating an electronic form comprising at least one field that is configured to accept multimedia information. Techniques are provided for specifying and associating a set of constraints (or predicates) with fields of a multimedia form, including specifying and associating one or more constraints with fields configured to accept multimedia information. Techniques for validating the electronic form based upon the constraints, if any, associated with the fields of the form. Various actions may be performed depending upon the results of the validation.

CROSS-REFERENCES TO RELATED APPLICATIONS

The present Application is a Divisional Application of U.S. patentapplication Ser. No. 11/060,888, filed Feb. 18, 2005, the disclosure ofwhich is incorporated by reference herein in its entirety for allpurposes.

BACKGROUND OF THE INVENTION

The present application relates to processing of forms, and moreparticularly to techniques for processing electronic forms having atleast one field that is configured to accept multimedia information asinput.

Forms are a common aspect of business and civic life. People fill outforms for a wide array of purposes. With the widespread use ofcomputers, an increasing number of forms are now provided in electronicform and filled in using a computer. An electronic form may comprise alist of fields, each field configured to accept information of aparticular type or value. Indeed, a rich array of software is presentlyavailable for constructing electronic forms. Such software allows a formcreator to specify the list of fields to be included in a form. The formcreator may also specify the type of information and/or a range ofallowed values accepted by the form fields. For example, for a namefield configured to accept information identifying the name of a person,the form creator may specify that the information input in the namefield must be text information. As another example, for an age fieldconfigured to accept information identifying the age of a person, theform creator may specify that the information input in the name fieldmust be of numeric type.

Various applications are also presently available for validating orchecking electronic forms. Validation involves checking if the requisiteinformation has been entered in the electronic form, checking the typeof information entered in the fields of the electronic form, checkingvalue ranges of the entered information, or even testing that a valueentered in a field is unique within a certain database. A form isgenerally considered validated when all the requirements and conditionsassociated with the form or fields of the form are satisfied.

In most conventional forms, the fields are generally configured toaccept text, numeric, or date information and validation is performed onthese types of information. However, electronic forms in the future arelikely to include fields that are configured to accept other types ofinformation besides text, numeric, or date information. For example,electronic forms may comprise fields that are configured to accept asinput multimedia information such as audio information, videoinformation, or image format data. Techniques are desired forfacilitating creation and validation of such multimedia forms.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention provide techniques for creating andprocessing electronic forms that include at least one field that isconfigured to accept multimedia information as input. Techniques areprovided for creating an electronic form comprising at least one fieldthat is configured to accept multimedia information. Techniques areprovided for specifying and associating a set of constraints (orpredicates) with fields of a multimedia form, including specifying andassociating one or more constraints with fields configured to acceptmultimedia information. Techniques are provided for validating theelectronic form based upon the constraints, if any, associated with thefields of the form. Various actions may be performed depending upon theresults of the validation.

According to an embodiment of the present invention, techniques areprovided for facilitating creation of an electronic form that comprisesa first field that is configured to accept multimedia information asinput, wherein the multimedia information comprises at least one of animage, audio information, or video information. Information is receivedidentifying a set of constraints to be associated with the first field,wherein the set of constraints is used to validate information enteredin the first field. The set of constraints is associated with the firstfield.

According to an embodiment of the present invention, information isreceived for combining constraints in a set of constraints associatedwith a first field of a form. Information may be received identifyingone or more actions to be performed when the information entered in thefirst field is successfully validated based upon the set of constraints.Information may be received identifying one or more actions to beperformed when the information entered in the first field is notsuccessfully validated based upon the set of constraints.

According to an embodiment of the present invention, techniques areprovided for creating an electronic form. An electronic form is createdusing a computer system, the electronic form comprising a first fieldthat is configured to accept multimedia information as input, whereinthe multimedia information comprises at least one of an image, audioinformation, or video information. A set of constraints to be associatedwith the first field and to be used for validating information enteredin the first field is specified. One or more relationships for combiningthe constraints in the set of constraints to be associated with thefirst field may also be specified. One or more actions to be performedwhen the information entered in the first field is successfullyvalidated or nor successfully validated may be specified.

According to an embodiment of the present invention, techniques areprovided for validating an electronic form comprising a set of one ormore fields. Input information entered in a first field from the set offields is determined, wherein the input information comprises at leastone of an image, audio information, or video information. A set of oneor more constraints associated with the first field is determined. Foreach constraint from the set of constraints, a determination is made ifthe input information entered in the first field satisfies theconstraint.

According to an embodiment of the present invention, a determination ismade if a combination of the constraints in the set of constraintsdetermined for the first field is satisfied by the input informationentered in the first field.

According to an embodiment of the present invention, the first field ismarked as acceptable if the combination of the constraints in the set ofconstraints is satisfied by the information entered in the first field,and marked as unacceptable if the combination of the constraints in theset of constraints is not satisfied by the input information entered inthe first field.

According to an embodiment of the present invention, the first field isindicated as successfully validated if the input information entered inthe first field satisfies each constraint in the set of constraints.

According to an embodiment of the present invention, techniques areprovided for validating an electronic form comprising a set of fields.For each field in the set fields, input information entered in the fieldis determined, wherein the input information entered in at least onefield from the set of fields comprises at least one of imageinformation, audio information, or video information. For each field inthe set of fields, a set of one or more constraints associated with thefield is determined. For each field in the set of fields, adetermination is made if the input information entered in the fieldsatisfies the set of constraints associated with the field.

According to an embodiment of the present invention, the electronic formis indicated as successfully validated if, for each field in the set offields, the input information entered in the field satisfies the set ofconstraints determined for the field, and indicated as not successfullyvalidated if, for at least one field in the set of fields, the inputinformation entered in the at least one field does not satisfy the setof constraints determined for the at least one field.

The foregoing, together with other features, embodiments, and advantagesof the present invention, will become more apparent when referring tothe following specification, claims, and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a simplified electronic multimedia form according to anembodiment of the present invention;

FIG. 2 is a simplified block diagram of a system for creating andvalidating multimedia forms according to an embodiment of the presentinvention;

FIG. 3 is a simplified high-level flowchart depicting a method ofassociating constraints with fields of a multimedia electronic formaccording to an embodiment of the present invention;

FIG. 4 is a simplified block diagram of modules that may be used tofacilitate creation of multimedia electronic forms according to anembodiment of the present invention;

FIG. 5 is a simplified high-level flowchart depicting a method ofvalidating a field on an electronic form according to an embodiment ofthe present invention;

FIG. 6 is a simplified block diagram of modules that may be used tovalidate electronic multimedia forms according to an embodiment of thepresent invention; and

FIG. 7 is a simplified block diagram of a computer system that may beused to practice an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, specificdetails are set forth in order to provide a thorough understanding ofthe invention. However, it will be apparent that the invention may bepracticed without these specific details.

Embodiments of the present invention provide techniques for creating andprocessing electronic forms that include at least one field that isconfigured to accept multimedia information as input. Techniques areprovided for creating an electronic form comprising at least one fieldthat is configured to accept multimedia information. Techniques areprovided for specifying and associating a set of constraints (orpredicates) with fields of a multimedia form, including specifying andassociating one or more constraints with fields configured to acceptmultimedia information. The electronic form is then validated based uponthe constraints, if any, associated with the fields of the form. Variousactions may be performed depending upon the results of the validation.

An electronic form is intended to refer to an electronic entity (e.g.,an electronic document) comprising one or more fields (or elements),each field configured to accept information. A field of an electronicform may be configured to accept input of a particular type. The type ofinformation for a field generally depends on the context and nature ofthe information expected to be entered in the field. For example, afield for receiving age information may be configured to receive numericinformation as input, a field for receiving address information may beconfigured to receive text information as input, and the like.

A multimedia form refers to an electronic form comprising at least onefield that is configured to accept multimedia information (or amultimedia object) as input. A multimedia form may comprise a mix offields configured to accept multimedia information and fields that areconfigured to accept text, date, numeric information, or otherinformation as input.

Multimedia information refers to any one of or a combination of videoinformation (including animation information), audio information, imagesinformation (e.g., photo images, slides, whiteboard images), and otherlike types of information. There are many other forms of media which canbe included under multimedia information, for example, time based sensorsamples such as telemetry data, seismic data, other types of sensormeasurement. Examples of multimedia information or objects include avideo recording of a television broadcast (that may comprise audio,video, and possibly close-captioned (CC) text information), an audioclip such as a song, a digital photograph, a scanned image, etc. Themultimedia information may be present in various formats includingvarious MPEG formats (e.g., MPEG 1, MPEG 2, MPEG 3, MPEG 4, MPEG 7,etc.), MP3 format, Synchronized Multimedia Integration Language (SMIL)format, HTML+TIME format, WMF (Windows Media Format), RM (Real Media)format, Quicktime format, Shockwave format, various image formats (e.g.,JPEG, etc.), various streaming media formats, formats being developed bythe engineering community, proprietary and customized formats, andothers.

FIG. 1 depicts a simplified electronic multimedia form 100 according toan embodiment of the present invention. Form 100 is used for submittinga “Traffic Accident and Insurance Report”. This form may be filled outby an insurance adjuster to report an accident. Form 100 comprises an“Accident Details” section for entering information about the accidentand a “Driver Information” section for entering information about thedriver involved in the accident.

The “Accident Details” section comprises several fields for enteringinformation related to the accident. These fields include a field 102for receiving information indicating the date when the accidentoccurred, a field 104 for receiving information specifying the time ofthe accident, a field 106 for receiving information identifying thelocation of the accident, a field 108 for receiving textual informationdescribing the accident, a field 110 for receiving audio information (oran audio object) describing the accident, a field 112 for receivingvideo information (or a video object) of the scene of the accident, anda field 114 for receiving images or photos of the car(s) involved in theaccident. Fields 110, 112, and 114 are fields that are configured toreceive multimedia information as input. For example, an insuranceadjuster may orally dictate a description of the accident scene using avoice recorder and the recorded audio object may then be input in field110. The adjuster may use a video recording device such as a videorecorder to record the accident scene and the video recording may beinput in field 112. The adjuster may also take photos using a camera andthe digitized photos may be input in field 114. Fields 102, 104, 106,and 108 are fields that are configured to receive text information,numeric information, or date information as input.

The “Driver Information” section of electronic multimedia form 100comprises several fields for entering information related to the driverinvolved in the accident. These fields include a field 120 for receivinginformation identifying the name of the driver, a field 122 forreceiving information identifying the license number of the driver, afield 124 for receiving information identifying the date of birth of thedriver, a field 126 for receiving information specifying the address ofthe driver, a field 128 for receiving a photo of the driver, and a field130 for receiving an interview of the driver conducted by the insuranceadjuster. Fields 128 and 130 are accordingly fields that are configuredto receive multimedia information as input. Field 130 may be configuredto receive various types of multimedia information including audioinformation and video information. Fields 120, 122, 124, and 128 arefields that are configured to receive text information, numericinformation, or date information as input.

Form 100 also provides a field 132 where the insurance adjuster candigitally sign the form after it has been filled. A field 134 forreceiving information identifying the insurance adjuster and a field 136for receiving information identifying the date when the insuranceadjuster filled the form are also provided.

After the insurance adjuster has filled the form, he/she may select“Submit” button 138 to submit the electronic form for processing. Beforethe electronic form is submitted for processing, the form may bevalidated. As part of the validation, checks may be performed todetermine if all the requisite information has been entered in the form,to determine if the information entered in the fields of the electronicform satisfies constraints, if any, associated with the fields of theform. For example, for field 114, validation may be performed todetermine is the photo entered on field 114 by the adjuster satisfiesthe constraints, if any, associated with field 114. One or more actionsmay be performed depending upon the results of the validation. Theactions to be performed may be configured for the form, for a field inthe form, or even for specific constraints. For example, if theinformation entered in a particular field fails to satisfy theconstraints associated with the field, then a message may be output tothe form filler to re-input information for that field or to check orconfirm the information input in that field. A reason for the validationfailure may also be output. If the form is successfully validated, thenthe validated form may be forwarded to other systems or applications forfurther processing. Information indicating that the form has beenvalidated may be stored along with the electronic form itself

Validation may be performed interactively as the form fields are beingfilled. In the interactive mode, some kind of validation may be executedimmediately upon filling of a field and the result of the validation maybe output to the form filler, thereby allowing the form filler toreceive immediate feedback on error conditions. Validation may also beperformed on a batch basis when groups of fields or all fields have beenfilled. For example, as described above, validation may be performed onfields of a form when a user selects the “Submit” button.

FIG. 2 is a simplified block diagram of a system 100 for creating andvalidating multimedia forms according to an embodiment of the presentinvention. FIG. 2 is merely illustrative of an embodiment incorporatingthe present invention and does not limit the scope of the invention asrecited in the claims. One of ordinary skill in the art would recognizeother variations, modifications, and alternatives.

As depicted in FIG. 2, a form designer 202 may use a form creationsystem 204 to design electronic forms, including multimedia electronicmultimedia forms 212. A new multimedia electronic form may be createdfrom scratch or may be created using existing forms 206 or formtemplates 208. Form creation system 204 enables form designer 202 tospecify the fields to be included in the multimedia electronic form andthe type of information that the fields are configured to receive asinput. As part of the electronic form creation process, a set ofconstraints may be specified for one or more fields of the form,including constraints for fields configured to accept multimediainformation as input. The constraints are used for validating the form.Form creation system 204 may have access to a list of constraints 210from which the form designer can pick and chose a set of constraints forfields of the electronic multimedia form being created. A list ofavailable constraints may be presented to the form designer who can thenselect the constraints to be associated with the fields of the form.

One or more constraints may be associated with a field of the form,including a field configured to accept multimedia information as input.A constraint for a field may be related to some aspect or characteristicof the information that the field is configured to accept. If multipleconstraints are specified for a field, then information identifying themanner in which the constraints are to be combined for the field mayalso be specified. According to an embodiment of the present invention,the manner in which constraints for a field are to be combined may bespecified, for example by form designer 202. In one embodiment, Booleanoperators may be specified for combining the constraints. The Booleanoperators form a Boolean expression comprising the constraints. Forexample, if constraints C1 and C2 are specified for a field of anelectronic form, the constraints may be combined as (C1 AND C2),indicating that both constraints C1 and C2 have to be satisfied in orderfor successful validation of the information input in the field. OtherBoolean or logical operators (e.g., OR, NOT, NAND, NOR) may also be usedto specify relationships between constraints for a field. The ANDoperator may be used as the default combination operator betweenconstraints for a field when no specific combination is identified bythe form designer and multiple constraints have been defined for thefield. In this manner, a syntactic method is provided for expressing andcombining constraints for a field of a multimedia electronic form. Theconstraints are used for validating the fields of the form.

In some embodiments, form creation system 204 may be used forassociating constraints with preconfigured electronic forms. Forexample, an electronic form may be provided that may have been createdusing form creation system 204 or some other system.

A form designer may then associate one or more constraints with thefields of the preconfigured electronic form using form creation system204.

A form designer may also specify specific actions to be performed whenvalidation succeeds or fails. The actions may be specified for the formas a whole or may be specified on a per-field basis. For example, for aparticular field, the form designer may specify actions, if any, to beperformed when validation for the field fails and actions, if any, to beperformed when validation for the field is successful. Actions may alsobe specified on a per constraint basis. For example, one or more actionsto be performed when a particular constraint is satisfied, oralternatively not satisfied, may be specified for a constraint.

Based upon information received from form designer 202, form creationsystem 204 is configured to create an electronic multimedia form 212along with associated constraints. Multimedia electronic form 212 isthen available to be used. Electronic form 212 may be output to a userwanting to use the form via system 214. System 214 may any system ordevice that enables a user (form filler 216) to access or viewelectronic form 212 and also enables a user to input information intothe fields of electronic form 212. Examples of system 214 include adesktop computer, a laptop, a PDA, a mobile communication device such asa cellular phone, a kiosk, a multi-function device, and the like. Formfiller 216 may enter information into the fields of form 212 usingsystem 214.

According to an embodiment of the present invention, after informationhas been entered in form 212 by form filler 216, the electronic formalong with the information input by form filler 216 is communicated to avalidation system 218. Validation system 218 is configured to runvalidation checks on the information entered by the form filler basedupon constraints specified for the form. The validation may be performedon the whole electronic form, for example, when the form filler selects“Submit” button 138 shown in FIG. 1. The validation may also beperformed on a per-field basis when the user enters information in afield. For example, validation for a field may be performed when theuser inputs information in the field and then hits the <Enter> key.Validation for a field may also be performed when the user inputsinformation in the field and then moves the cursor out of the field(e.g., upon hitting the <TAB> key to go from one field to the next).

Validation system 218 may initiate one or more actions based upon theresults of the validation. For example, if the information entered in aparticular field fails to satisfy the constraints associated with thefield, then validation system 218 may generate an error message that maybe output to form filler 216 using system 214. The error message mayidentify the reason for the validation failure, may request the formfiller to re-enter information for that field, ask the form filler tocheck the entered information, and the like. Messages indicatingvalidation success may also optionally be generated by validation system218 and output to form filler 216 using system 214. Other actions mayalso be performed or initiated by validation system 218 based upon theresults of the validation. For example, if the form is successfullyvalidated, then validation system 218 may mark the electronic form asvalidated and communicate the electronic form to other systems orapplications for further processing.

As indicated above, form creation system 204 enables form designer toassociate constraints with fields of an electronic form. FIG. 3 is asimplified high-level flowchart 300 depicting a method of associatingconstraints with fields of a multimedia electronic form according to anembodiment of the present invention. The method depicted in FIG. 3 maybe performed by software code modules or instructions executed by aprocessor, hardware modules, or combinations thereof Flowchart 300depicted in FIG. 3 is merely illustrative of an embodiment of thepresent invention and is not intended to limit the scope of the presentinvention. Other variations, modifications, and alternatives are alsowithin the scope of the present invention. The method depicted in FIG. 3may be adapted to work with different implementation constraints.

As depicted in FIG. 3, information is received identifying an electronicmultimedia form (step 302). A list of fields specified for theelectronic multimedia form is then determined (step 304). The list offields may include at least one field that is configured to acceptmultimedia information. The list of fields determined in 304 may beoutput, for example to the form designer (step 306). Information isreceived indicating selection of a particular field from the list offields (step 308). A list of constraints that are available for theselected field are then determined (step 310). The list of constraintsmay be determined based upon the type of information that the selectedfield is configured to accept. For example, a first list of constraintsmay be determined if the selected field is configured to accept audioinformation, a second list of constraints (which may potentially bedifferent from the first list) may be determined if the selected fieldis configured to accept video information, and so on. Accordingly, ifthe type of information that the selected field is configured to accepthas been set then that information is used to determine the list ofavailable constraints. If the type of information has not been set forthe selected field, then all the available constraints (includingconstraints that enable a user to set the type of information for afield) may be included in the list of constraints determined in 310.

The list of constraints determined in 310 is then output to the formdesigner (step 312). Information is received identifying one or moreconstraints that the form designer wants to associate with the selectedfield (step 314). For example, let us assume that the selected field isfield 114 of form 100 depicted in FIG. 1, and the form designer wants toensure that image input in field 114 is of sufficiently high resolutionfor use in court, that the image must be sharp, and include images ofcertain parts of the car. The form designer might specify the followingfour constraints for the field:

-   C1: Image must have at least 5 million pixels-   C2: Image aspect ratio is more than 1.5:1-   C3: Image has a “blur” rating below a threshold “K”-   C4: Image has a car in an appropriate orientation.

The constraints may also specify whether information must be entered inthe selected field (i.e., the field is a “required” field). A constraintspecified for a field configured to receive multimedia information maybe dependent in the value of an entry in another field on the electronicform. The another field may be a field configured to accept multimediainformation or non-multimedia information. A constraint specified for anon-multimedia information field may be dependent in the value of anentry in another field (which may be a multimedia information field or anon-multimedia information field) on the electronic form.

If multiple constraints have been specified, as defined for field 112,then information identifying the manner in which the constraints are tobe combined (or relationships between the constraints) may also bereceived in 314. In one embodiment, Boolean operators may be used forcombining the constraints. For example, if constraints C1 and C2 arespecified for a field of an electronic form, the constraints may becombined as (C1 AND C2), indicating that both constraints C1 and C2 haveto be satisfied in order for successful validation of the informationinput in the field. Other Boolean or logical operators (e.g., OR, NOT,NAND, NOR) may also be used to specify relationships between constraintsfor a field. The Boolean AND operator may be used as the defaultcombination operator if no specific combination operator is specified.

As described above, form designer may also specify specific actions tobe performed when validation succeeds or fails. The actions may bespecified for the form as a whole or may be specified, on a per-fieldbasis, or even for individual constraints. Accordingly, information mayoptionally be received specifying one or more actions to be performedwhen validation for the selected field fails and/or succeeds (step 316).In alternative embodiments, the actions logic may be programmed into thesystem or device (such as validation system 218 depicted in FIG. 1) thatis configured to respond to validation success or failure. One class ofactions may involve setting the value of one of the fields based on theresult of a constraint evaluation. For example, a checkbox field labeled“Items Valid” might be marked when all the fields of a multimedia formhave acceptable values.

The constraints (including combination information) and the actions (ifany) specified by the form designer are then associated with theselected field (step 318). The constraints information and the actionsinformation may be stored as part of the electronic form.

FIG. 4 is a simplified block diagram of modules that may be used tofacilitate creation of multimedia electronic forms according to anembodiment of the present invention. The modules depicted in FIG. 4 maybe implemented in software (code modules or instructions) or hardware orcombinations thereof. Further, the modules depicted in FIG. 4 depictjust one embodiment of the present invention and are not intended tolimit the scope of the present invention as recited in the claims.

A user interface module 402 is provided for outputting informationrelated to creation of electronic forms and for receiving input that isused for electronic forms creations. For example, user interface 402enables a form designer to interact with the form creation system. Theinputs may be provided using input devices such as a mouse, a keyboard,a pointer, etc. The inputs provided by form designer may includeinformation identifying fields for a form, constraints to be associatedwith the fields, actions to be performed when validation succeeds orfails, and the like. Form builder module 404 is configured to performprocessing for creating an electronic form 212. Form builder module 404has access to form templates 208 and existing electronic forms 206 thatmay be used to build new forms. Form builder module 404 works inco-operation with constraints editor module 406 and actions editormodule 408 for building multimedia electronic forms.

Constraints editor module 406 enables a form designer to specifyconstraints for fields of an electronic form and to specify combinationrelationships between multiple constraints for a field. The constraintsare then associated with the particular field. Constraints editor module406 has access to constraints information 406 that may identify thevarious constraints that are available.

Actions editor module 408 enables a form designer to specify specificactions to be performed when validation for a field is successful or notsuccessful. The actions may be specified for the electronic form as awhole, for individual fields of an electronic form, or for individualconstraints. Actions editor module 408 may have access to actionsinformation 410 that identifies the various actions available forselection by a form designer. The form designer may also specify othercustomized actions.

As described above, one or more constraints may be associated withfields of an electronic form. The constraints are then used to validatethe fields. The type of constraints associated with a field may dependupon the type of information that the field is configured to accept. Forexample, constraints associated with fields that are configured toaccept multimedia information may be based upon or related to attributesor characteristics of the multimedia information. For example, for afield configured to accept an image as input, the constraints specifiedfor the field may relate to the attributes of an image. Examples ofconstraints that may be specified for a field configured to accept animage may include constraints related to image attributes such as imagesize, image shape, image color depth (or bit depth), motion blur, blurmeasure or focus for the image (to infer whether an image issufficiently focused), overall image brightness, image contrast, imageresolution (e.g., a constraint related to the number of pixels in theimage), image aspect ratio, image contents, whether the image is uniqueagainst an existing database, whether the image is sharply focused,whether the image comprises metadata tags or lack thereof, imageresolution, image color model (e.g., CYMK, RGB, etc.), image colorrange, whether the image contains detectable elements (examples ofdetectable elements include faces, automobiles, flowers, etc.), whetherthe image contains steganographic data, constraints based uponidentification information related to the device (e.g., a camera) usedto capture the image, constraints related to a date associated with theimage (e.g., the date may represent the date when the image wascaptured), constraints related a time associated with the image (e.g.,the time may indicate when the image was captured), constraints basedupon GPS locations associated with the image, image format (e.g., JPGvs. J2k), whether the image is a multi-page (i.e., “n” pages) image, andother constraints related to image attributes. For example, a fieldmight allow entry of only images which have been created with anapproved model of a camera, and the Make and Model entries of EXIF tags,as specified by the Japan Electronics and Information technologyIndustries Association, may be checked to validate the images).Steganographic data or information refers to information hidden withinthe content of an image by subtly manipulating image sample values in aknown way. A standard example is to include a black and white imagewithin a color image, by manipulating the least significant color bit ofthe image. By removing all color information except for the leastsignificant bit, the black and white image can be recovered, and yet thefull color image remains almost indistinguishable from the original tothe unaided human eye. Steganographic techniques are often used forinclusion of copyright information as a watermark within commercialimages.

Constraints may also be specified for video information. Constraintsassociated with a field configured to receive video information may berelated to attributes or characteristics of video information. Forexample, one could set a constraint that every frame (or a particularframe, or a particular series of frames) of the video must meet a set ofconstraints specified for still images. A constraint may also bespecified requiring the video information entered in a field to be of acertain temporal length, or a certain frame rate. Examples ofconstraints that may be specified for a field configured to accept videoinformation as input may include constraints related to or associatedwith: temporal characteristics of the video information (e.g.,constraints related to video length), one or more frames of the video(image constraints may be specified for the frames), video quality,sound quality of the video (discussed below with respect to constraintsfor audio information), video metadata tags, MPEG related structureelements present in the video (e.g., presence of MPEG-7 structureelements), closed caption information, scene detection, and otherconstraints related to video information attributes. Video qualityconstraints may relate to constraints associated with frames(expressible as one frame, every frames, a set of frames, at least “n”frames, at least one, at most “n”, mean, median, mode, number of scenetransitions present within the video, number of individual facesrecognized over time, or other content based constraints) of the videoinformation.

Constraints may also be specified for audio information. Constraintsassociated with a field configured to receive audio information may berelated to attributes or characteristics of audio information. Forexample, one could specify constraints related to temporal and/orsampling rates associated with the audio information. Constraints formetadata information may also be specified. Examples of constraints thatmay be specified for a field configured to accept audio information asinput may include constraints related to temporal characteristics of theaudio information, sampling rate associated with the audio information,constraints associated with metadata for the audio information, tags(e.g., MP3 tags) associated with the audio information, a speaker of theaudio information (speech recognition), side channel information, audiovolume, characteristics of the audio signal (e.g., audio noise),variability of the audio, frequency histogram associated with the audioinformation, audio fingerprint, etc. Different types of constraints mayalso be specified for other types of information.

As previously indicated, validation may be performed for the wholeelectronic form (e.g., when the form filler submits the electronic form)or may also be performed on a per-field basis. FIG. 5 is a simplifiedhigh-level flowchart 500 depicting a method of validating a field on anelectronic form according to an embodiment of the present invention. Themethod depicted in FIG. 5 may be performed by software code modules orinstructions executed by a processor, hardware modules, or combinationsthereof Flowchart 500 depicted in FIG. 5 is merely illustrative of anembodiment of the present invention and is not intended to limit thescope of the present invention. Other variations, modifications, andalternatives are also within the scope of the present invention. Themethod depicted in FIG. 5 may be adapted to work with differentimplementation constraints.

As depicted in FIG. 5, processing is initiated upon receiving a signalto validate a field of an electronic multimedia form (step 502).According to the teachings of the present invention, the field to bevalidated may be configured to accept multimedia information. A list ofconstraints associated with or specified for the field is thendetermined (step 504). A constraint is then selected from the list ofconstraints determined in 504 (step 506).

Processing is then performed to determine if the selected constraint issatisfied for the selected field (step 508). As part of 508, theinformation entered in the selected field is determined and processed todetermine if is satisfies the constraint. For example, the informationentered in the selected field may be a multimedia object (e.g., animage, a video recording, etc.) and the multimedia object is processedto determine if it satisfies the selected constraint. If it isdetermined in 508 that the constraint is satisfied (or met), then theconstraint is marked as satisfied (step 510). A check is then made tosee if there are any more unprocessed (i.e., not previously evaluated)constraints associated with the field in the list of constraintsdetermined in 504 (step 512). If at least one unprocessed constraintexists, then the next unprocessed constraint is selected from the listof constraints determined in 504 (step 514) and processing continueswith step 508. If it is determined in 508 that the constraint is notsatisfied or met, then the constraint is marked as not satisfied (step516) and processing continues with step 512.

After all the constraints associated with the field have been evaluatedor processed, a determination is made if the field satisfies thecombination of the constraints specified for the field (step 518). Asdescribed above, the constraints may be combined using Boolean operatorsto form a Boolean expression of constraints. Accordingly in 518, aresult for the Boolean combination of the constraints (or Booleanexpression) is evaluated and checked to see whether it evaluates to aTRUE indicating that the field and its input information passed theconstraints combination or evaluates to a FALSE indicating that thefield and its input information did not pass the constraintscombination. For example, if the combination is specified as (C1 ANDC2), then the combination evaluates to TRUE only if both constraints C1and C2 are deemed satisfied. If the combination is specified as (C1 ORC2), then the combination evaluates to TRUE if either constraints C1 orC2 are satisfied. A default AND Boolean operator may be used forevaluating the combination if no specific operator has been specified.

If it is determined in 518 that the field and its input informationpasses the combination of the constraints, then the field is marked asvalidated and acceptable (step 520). One or more actions may optionallybe performed in response to the successful validation (step 522). Theseactions may include for example storing the information entered in thefield to a database, outputting information to the form filler, etc.Responsive actions may be configured specific to a field. Actions mayeven be configured specific to a constraint, i.e., the action isperformed when the constraint is satisfied or alternatively notsatisfied. The actions may be configured by the form designer, formprocessing flow controller, or some other user or process that isresponsible for processing the electronic form.

If it is determined in 518 that the field and its input information doesnot pass or satisfy the combination of the constraints, then the fieldis marked as invalid or unacceptable (step 524). One or more actions mayalso be optionally performed in response to the unsuccessful validationof the field (step 526). These actions may include for example,outputting an error message to the form filler requesting the formfiller to reenter or recheck information entered in the field, loggingan error message, etc. As described above, the actions to be performedmay be configured for the field or even for a constraint, i.e., theaction is performed when the constraint is satisfied or alternativelynot satisfied.

Information specifying combination of constraints may not be specifiedin some embodiments of the present invention. For example, in oneembodiment of the present invention, a field may be consideredsuccessfully validated if the information entered in the field satisfiesall the constraints associated with the field. A field may be consideredto fail validation if the information entered in the field does notsatisfy all the constraints associated with the field.

The processing depicted in FIG. 5 may be repeated for each field of anelectronic multimedia. For example, when a form filler fills ininformation in the various fields of an electronic form and then“submits” the electronic form, a list of all fields in the electronicform may be determined and the processing depicted in FIG. 5 may beperformed for each field of the electronic form, including fieldsconfigured to accept multimedia information as input. In one embodiment,the electronic form may be marked as invalid or unacceptable if any oneof the fields of the electronic form is not successfully validated, elsethe electronic form is marked as validated or acceptable. The validationinformation may be stored as part of the electronic form. One or moreactions may also be performed based upon the success or failure of theelectronic form validation process. As previously indicated, the actionsmay be configured specific to a field or specific to a constraint. Theactions may be configured by the form designer, form processing flowcontroller, or some other user or process that is responsible forprocessing the electronic form. Actions performed upon successfulvalidation may include for example, submitting the electronic form alongwith its input data to another process or application for furtherprocessing, storing the information entered in the fields of theelectronic form in a database, and the like. Actions performed uponsuccessful validation may include for example, outputting an errormessage to the form filler requesting the form filler to reenter orrecheck information entered in the field, logging an error message, etc.

FIG. 6 is a simplified block diagram of modules that may be used tovalidate electronic multimedia forms according to an embodiment of thepresent invention. The modules depicted in FIG. 6 may be implemented insoftware (code modules or instructions) or hardware or combinationsthereof. Further, the modules depicted in FIG. 6 depict just oneembodiment of the present invention and are not intended to limit thescope of the present invention as recited in the claims.

Form processor module 602 is configured to receive an electronic form ora field of an electronic multimedia form for validation. Form processormodule 602 is configured to perform the validation processing inconjunction with validity tester module 602. For a given electronicform, form processor module 602 is configured to determine a list offields of the electronic multimedia form and information, if any,entered in the fields. Each field is then validated by validity testermodule 604.

For each field to be validated, validity tester module 604 is configuredto access or determine constraints 608 specified for the field. In oneembodiment, the constraints may be stored as part of the form to bevalidated. Validity tester module 604 may use one or more plug-inmodules 606 to perform processing to determine if the field and itsentered information satisfies the constraints associated with the field.Each plug-in module may be configured to perform processing to check aparticular constraint. For example, a plug-in module may be configuredto perform contrast and blur related checks. Plug-ins may also beconfigured to perform evaluate constraints specified for a particulartype of information. For example, plug-ins may be provided forperforming constraints processing for multimedia information. A firstplug-in may be provided to check validity of audio information, a secondplug-in may be provided for checking video information, and so on. Theuse of plug-ins enhances the flexibility of the validity processing. Newtypes of constraint checks can be easily accommodated by providingplug-ins to run the checks. Likewise, validity checking can be performedfor various types of information by providing plug-ins for performingthe corresponding processing. It should however be apparent thatplug-ins are not required for the present invention as recited in theclaims. Other techniques may also be used to perform the validitychecking

Action module 610 is configured to perform actions. These actions may beperformed responsive to success or failure of the validation processing.Actions to be performed may be specified for the electronic form beingvalidated. Actions may also be specified for particular fields of theelectronic form. Actions may also be specified for specific constraintsassociated with fields of an electronic form. The actions to beperformed may be specified by the form designer, the form processingflow controller, or some other user or process that is responsible forprocessing the electronic form.

FIG. 7 is a simplified block diagram of a computer system 700 that maybe used to practice an embodiment of the present invention. As shown inFIG. 7, computer system 700 includes a processor 702 that communicateswith a number of peripheral devices via a bus subsystem 704. Theseperipheral devices may include a storage subsystem 706, comprising amemory subsystem 708 and a file storage subsystem 710, user interfaceinput devices 712, user interface output devices 714, and a networkinterface subsystem 716.

Bus subsystem 704 provides a mechanism for letting the variouscomponents and subsystems of computer system 700 communicate with eachother as intended. Although bus subsystem 704 is shown schematically asa single bus, alternative embodiments of the bus subsystem may utilizemultiple busses.

Network interface subsystem 716 provides an interface to other computersystems, and networks, and devices. Network interface subsystem 716serves as an interface for receiving data from and transmitting data toother systems from computer system 700.

User interface input devices 712 may include a keyboard, pointingdevices such as a mouse, trackball, touchpad, or graphics tablet, ascanner, a barcode scanner, a touchscreen incorporated into the display,audio input devices such as voice recognition systems, microphones, andother types of input devices. In general, use of the term “input device”is intended to include all possible types of devices and mechanisms forinputting information to computer system 700.

User interface output devices 714 may include a display subsystem, aprinter, a fax machine, or non-visual displays such as audio outputdevices, etc. The display subsystem may be a cathode ray tube (CRT), aflat-panel device such as a liquid crystal display (LCD), or aprojection device. In general, use of the term “output device” isintended to include all possible types of devices and mechanisms foroutputting information from computer system 700.

Storage subsystem 706 may be configured to store the basic programmingand data constructs that provide the functionality of the presentinvention. Software (code modules or instructions) that provides thefunctionality of the present invention may be stored in storagesubsystem 706. These software modules or instructions may be executed byprocessor(s) 702. Storage subsystem 706 may also provide a repositoryfor storing data used in accordance with the present invention. Storagesubsystem 706 may comprise memory subsystem 708 and file/disk storagesubsystem 710.

Memory subsystem 708 may include a number of memories including a mainrandom access memory (RAM) 718 for storage of instructions and dataduring program execution and a read only memory (ROM) 720 in which fixedinstructions are stored. File storage subsystem 710 provides persistent(non-volatile) storage for program and data files, and may include ahard disk drive, a floppy disk drive along with associated removablemedia, a Compact Disk Read Only Memory (CD-ROM) drive, a DVD, an opticaldrive, removable media cartridges, and other like storage media.

Computer system 700 can be of various types including a personalcomputer, a portable computer, a workstation, a network computer, amainframe, a kiosk, or any other data processing system. Due to theever-changing nature of computers and networks, the description ofcomputer system 700 depicted in FIG. 7 is intended only as a specificexample for purposes of illustrating the preferred embodiment of thecomputer system. Many other configurations having more or fewercomponents than the system depicted in FIG. 7 are possible.

Although specific embodiments of the invention have been described,various modifications, alterations, alternative constructions, andequivalents are also encompassed within the scope of the invention. Thedescribed invention is not restricted to operation within certainspecific data processing environments, but is free to operate within aplurality of data processing environments. Additionally, although thepresent invention has been described using a particular series oftransactions and steps, it should be apparent to those skilled in theart that the scope of the present invention is not limited to thedescribed series of transactions and steps.

Further, while the present invention has been described using aparticular combination of hardware and software, it should be recognizedthat other combinations of hardware and software are also within thescope of the present invention. The present invention may be implementedonly in hardware, or only in software, or using combinations thereof.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that additions, subtractions, deletions, and other modificationsand changes may be made thereunto without departing from the broaderspirit and scope of the invention as set forth in the claims.

1. A method performed by a computer system of facilitating creation ofan electronic form that comprises a first field that is configured toaccept multimedia information as input, wherein the multimediainformation comprises at least one of an image, audio information, orvideo information, the method comprising: receiving informationidentifying a set of constraints to be associated with the first field,wherein the set of constraints is used to validate information enteredin the first field; and associating the set of constraints with thefirst field.
 2. The method of claim 1 further comprising: receivinginformation for combining the constraints in the set of constraintsassociated with the first field.
 3. The method of claim 1 furthercomprising receiving information identifying one or more actions to beperformed when the information entered in the first field issuccessfully validated based upon the set of constraints.
 4. The methodof claim 1 further comprising receiving information identifying one ormore actions to be performed when the information entered in the firstfield is not successfully validated based upon the set of constraints.5. A method of creating an electronic form, the method comprising:creating an electronic form using a computer system, the electronic formcomprising a first field that is configured to accept multimediainformation as input, wherein the multimedia information comprises atleast one of an image, audio information, or video information;specifying, using the computer system, a set of constraints to beassociated with the first field and to be used for validatinginformation entered in the first field; and specifying, using thecomputer system, one or more relationships for combining the constraintsin the set of constraints to be associated with the first field.
 6. Themethod of claim 5 further comprising: specifying, using the computersystem, one or more actions to be performed when the information enteredin the first field is successfully validated.
 7. The method of claim 5further comprising: specifying, using the computer system, one or moreactions to be performed when the information entered in the first fieldis not successfully validated.
 8. A system configured to facilitatecreation of an electronic form that comprises a first field that isconfigured to accept multimedia information as input, wherein themultimedia information comprises at least one of an image, audioinformation, or video information, the system comprising: a processor;and a memory, the memory storing a plurality of instructions which whenexecuted by the processor cause the processor to: receive informationidentifying a set of constraints to be associated with the first field,wherein the set of constraints is used to validate information enteredin the first field; and associate the set of constraints with the firstfield.